package javaconfigftw;
import com.mongodb.Mongo;
import org.apache.commons.dbcp.BasicDataSource;
import org.springframework.context.annotation.*;
import org.springframework.core.env.Environment;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import javax.sql.DataSource;
import java.sql.Driver;
/**
* @author Josh Long
*/
@PropertySource("classpath:/services.properties")
@Configuration
@Profile("default")
public class LocalDataSourceConfiguration {
@Bean
public DataSource dataSource(Environment environment) throws Exception {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setPassword(environment.getProperty("dataSource.password"));
dataSource.setUrl(environment.getProperty("dataSource.url"));
dataSource.setUsername(environment.getProperty("dataSource.user"));
dataSource.setDriverClassName(environment.getPropertyAsClass("dataSource.driverClass", Driver.class).getName());
return dataSource;
}
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new JedisConnectionFactory();
}
@Bean
public MongoDbFactory mongoDbFactory (Environment environment) throws Exception {
String dbName = environment.getProperty("mongo.db");
String host = environment.getProperty("mongo.host");
Mongo mongo = new Mongo(host);
return new SimpleMongoDbFactory(mongo, dbName);
}
}